#include<set>
#include<cstdio>
#include<vector>
using namespace std;
struct node{
    int value;
    int cnt;
    node(int value,int cnt):value(value),cnt(cnt){}
    bool operator <(const node& a)const{
        if(cnt!=a.cnt){return cnt>a.cnt;}
        else{return value<a.value;}
    }
};

set<node> inp;
vector<int> hashtable;
int main(){
    //freopen("in.txt","r",stdin);
    int N,K,tmp;
    scanf("%d %d",&N,&K);
    hashtable.resize(N+1);
    fill(hashtable.begin(),hashtable.end(),0);
    for(int i=0;i<N;i++){
        scanf("%d",&tmp);
        if(i!=0){
            printf("%d:",tmp);
            int cot=0;
            for(auto it=inp.begin();it!=inp.end()&&cot<K;it++){
                printf(" %d",it->value);
                cot++;
            }
            printf("\n");
        }
        if(inp.find(node{tmp,hashtable[tmp]})==inp.end()){inp.insert(node{tmp,hashtable[tmp]+1});}
        else{inp.erase(inp.find(node{tmp,hashtable[tmp]}));inp.insert(node{tmp,hashtable[tmp]+1});}
        hashtable[tmp]++;
    }
}
